// Copyright 2022 a.o.smith ALL Rights Reserved
package com.liuxinlong.modules.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.liuxinlong.modules.entity.RoleRight;
import com.baomidou.mybatisplus.mapper.BaseMapper;

/**
 * 类描述
 * <p>
 * 此类关联设计的功能
 *
 * @author liuxinlong@hotwater.com.cn
 * @version 1.0.0
 * @since 2022年2月22日
 */
public interface RoleRightMapper extends BaseMapper<RoleRight> {
    /**
     * 查询角色权限树
     *
     * @param roleId 角色id
     * @return 角色权限树
     */
    List<RoleRight> queryRoleRightList(@Param("roleId") String roleId);

    /**
     * 删除角色权限
     *
     * @param roleId 角色id
     */
    void deleteByRoleId(@Param("roleId") String roleId);

    /**
     * 批量新增用户角色权限
     *
     * @param roleRightList 用户角色权限列表
     */
    void batchAddRoleRight(@Param("roleRightList") List<RoleRight> roleRightList);

    /**
     * 用户角色权限
     *
     * @param roleIdList 角色id列表
     * @param url    菜单路径
     * @return 权限数据
     */
    List<RoleRight> queryRoleRightInfo(@Param("list")List<String> roleIdList,@Param("url") String url);

    /**
     * 查询用户角色权限树
     *
     * @param userId 用户id
     * @return 角色权限树
     */
    List<RoleRight> queryUserRoleRightList(@Param("userId")String userId);

    /**
     * 查询菜单角色
     *
     * @param menuId 菜单id
     * @return 菜单角色
     */
    List<RoleRight> queryRoleByMenu(@Param("menuId")String menuId);

    /**
     * 根据用户id，菜单权限码获取角色权限数据
     *
     * @param userId 用户id
     * @param rightCode 菜单权限码
     * @return 角色权限数据
     */
    List<RoleRight> queryUserMenuRight(@Param("userId")String userId,@Param("rightCode")String rightCode);

}
